Reduction of adjacent floating gate data pattern sensitivity

ABSTRACT

The method for programming non-volatile memory cells erases the memory cells to be programmed. The memory cells are then programmed to a reduced floating gate voltage that takes into account capacitive coupling between the floating gates of adjacent memory cells. In one embodiment, the programming method programs and verifies a first memory cell to the reduced floating gate voltage, programs and verifies an adjacent memory cell to the reduced floating gate voltage, and verifies the first memory cell to an increased floating gate voltage that is greater than the reduced floating gate voltage.

RELATED APPLICATION

This Application is a Divisional of U.S. application Ser. No.10/881,636, titled “REDUCTION OF ADJACENT FLOATING GATE DATA PATTERNSENSITIVITY” filed Jun. 30, 2004, now U.S. Pat. No. 7,274,596, which iscommonly assigned and incorporated herein by reference.

TECHNICAL FIELD OF THE INVENTION

The present invention relates generally to memory devices and inparticular the present invention relates to programming of non-volatilememory devices.

BACKGROUND OF THE INVENTION

Memory devices are typically provided as internal, semiconductor,integrated circuits in computers or other electronic devices. There aremany different types of memory including random-access memory (RAM),read only memory (ROM), dynamic random access memory (DRAM), synchronousdynamic random access memory (SDRAM), and flash memory.

Flash memory devices have developed into a popular source ofnon-volatile memory for a wide range of electronic applications. Flashmemory devices typically use a one-transistor memory cell that allowsfor high memory densities, high reliability, and low power consumption.Common uses for flash memory include personal computers, personaldigital assistants (PDAs), digital cameras, and cellular telephones.Program code and system data such as a basic input/output system (BIOS)are typically stored in flash memory devices for use in personalcomputer systems.

Two common types of flash memory array architectures are the “NOR” and“NAND” architectures. The architecture names refer to the resemblancethat the memory cell configuration of each architecture has to a basicNOR or NAND gate circuit, respectively.

In the NOR array architecture, the floating gate memory cells of thememory array are arranged in a matrix. The gates of each floating gatememory cell of the array matrix are connected by rows to word selectlines (wordlines) and their drains are connected to column bitlines. Thesource of each floating gate memory cell is typically connected to acommon source line.

A NAND array architecture also arranges its array of floating gatememory cells in a matrix such that the gates of each floating gatememory cell of the array are connected by rows to wordlines. Each memorycell, however, is not directly connected to a source line and a columnbit line. The memory cells of the array are instead arranged together instrings. Each string typically comprises 8, 16, 32, or more cells. Thememory cells in the string are connected together in series, source todrain, between a common sourceline and a column bitline.

As the performance of electronic systems increase, the performance offlash memory devices in the systems should increase as well. Aperformance increase can include improving both the speed and the memorydensity of the devices. One way to accomplish both of these criteria isto reduce the memory device size.

One problem with decreasing the size of a NAND flash memory device isthe floating gate-to-floating gate coupling that occurs as the memorycells get closer together. The overall height of the floating gates arenot reduced much since that also reduces the coupling of the wordlineand impacts the program and erase operations on the cells. The increasedcapacitive coupling between the floating gates creates a data patternsensitivity such that data programmed on one cell can affect theverification and reading of an adjacent cell.

For the reasons stated above, and for other reasons stated below whichwill become apparent to those skilled in the art upon reading andunderstanding the present specification, there is a need in the art fora way to reduce the effect of capacitive coupling between adjacentfloating gates.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a simplified diagram of one embodiment of a NAND flashmemory array architecture of the present invention.

FIG. 2 shows a flowchart of one embodiment for a method for programmingmemory cells to reduce or eliminate floating gate-to-floating gate datapattern sensitivity in a memory device.

FIG. 3 shows a flowchart of an alternate embodiment for a method forprogramming memory cells to reduce or eliminate floatinggate-to-floating gate data pattern sensitivity in a memory device.

FIG. 4 shows a block diagram for one embodiment of an electronic systemof the present invention.

DETAILED DESCRIPTION

In the following detailed description of the invention, reference ismade to the accompanying drawings that form a part hereof and in whichis shown, by way of illustration, specific embodiments in which theinvention may be practiced. In the drawings, like numerals describesubstantially similar components throughout the several views. Theseembodiments are described in sufficient detail to enable those skilledin the art to practice the invention. Other embodiments may be utilizedand structural, logical, and electrical changes may be made withoutdeparting from the scope of the present invention. The followingdetailed description is, therefore, not to be taken in a limiting sense,and the scope of the present invention is defined only by the appendedclaims and equivalents thereof.

The voltages given in the following description of the embodiments ofthe present invention are for purposes of illustration only. The actualvoltages will vary with the type of memory device and the technologyused to manufacture the memory device. Therefore, the present inventionis not limited to any one range of gate voltages, programming voltages,threshold voltages, or other voltages.

FIG. 1 illustrates a simplified diagram of one embodiment for a NANDflash memory array of the present invention. The memory array of FIG. 1,for purposes of clarity, does not show all of the elements typicallyrequired in a memory array. For example, only two bitlines are shown(BL1 and BL2) when the number of bitlines required actually depends uponthe memory density. The bitlines are subsequently referred to as(BL1-BLN).

The array is comprised of an array of floating gate cells 101 arrangedin series strings 104, 105. Each of the floating gate cells 101 arecoupled drain to source in each series chain 104, 105. A word line(WL0-WL31) that spans across multiple series strings 104, 105 is coupledto the control gates of every floating gate cell in a row in order tocontrol their operation. The bitlines (BL1-BLN) are eventually coupledto sense amplifiers (not shown) that detect the state of each cell.

In operation, the wordlines (WL0-WL31) select the individual floatinggate memory cells in the series chain 104, 105 to be written to or readfrom and operate the remaining floating gate memory cells in each seriesstring 104, 105 in a pass through mode. Each series string 104, 105 offloating gate memory cells is coupled to a source line 106 by a sourceselect gate 116, 117 and to an individual bitline (BL1-BLN) by a drainselect gate 112, 113. The source select gates 116, 117 are controlled bya source select gate control line SG(S) 118 coupled to their controlgates. The drain select gates 112, 113 are controlled by a drain selectgate control line SG(D) 114.

Each cell can be programmed as a single bit per cell (SBC) or multiplebits per cell (i.e., multilevel cell—MLC). Each cell's threshold voltage(V_(t)) determines the data that is stored in the cell. For example, ina single bit per cell, a V_(t) of 0.5V might indicate a programmed cellwhile a V_(t) of −0.5V might indicate an erased cell. These areindicative of floating gate voltages such that, assuming a wordline tofloating gate coupling ratio of 50%, the wordline voltages would be 1.0Vand −1.0V, respectively.

For single bit cells, the V_(t) window is larger than the V_(t) for amultilevel cell. The multilevel cell may have multiple V_(t) windowsthat each indicate a different state. Multilevel cells take advantage ofthe analog nature of a traditional flash cell by assigning a bit patternto a specific voltage range stored on the cell. This technology permitsthe storage of two or more bits per cell, depending on the quantity ofvoltage ranges assigned to the cell.

For example, a cell may be assigned four different voltage ranges of 200mV for each range. The quantity of voltage ranges required depends onthe quantity of bits stored in the cell. Also, a dead space or guardband of 0.2V to 0.4V may be located between each voltage range. If thevoltage detected on the cell is within the first range, the cell isstoring a 00. If the voltage is within the second range, the cell isstoring a 01. This continues for as many ranges that are used for thecell. These voltage ranges are for purposes of illustration only as thepresent invention is not limited to a certain quantity of voltageranges, a voltage range, bit assignments, or guard band spacing.

During a typical prior art programming operation, the selected wordlinefor the flash memory cell to be programmed is biased with a programmingpulse at a voltage that is greater than 16V. A verification operationwith a wordline voltage of 0V is then performed to determine if thefloating gate is at the proper voltage (e.g., 0.5V). The unselectedwordlines for the remaining cells are typically biased at approximately10V during the program operation. Each of the memory cells is programmedin a substantially similar fashion.

The embodiments of the programming method of the present inventionprogram each cell taking into account the effect that particular cellhas on adjacent cells. This can be done with a soft programming pulsethat performs a partial program of the cell to a threshold voltage thatis less than the prior art voltage but that is then increased by thecoupling effect of an adjacent cell being programmed.

The subsequently discussed voltages for soft programming and verifyingthe memory cells of the present invention are for purposes ofillustration only. The present invention is not limited to any one V_(t)since different types of flash memory may have different coupling ratiosbetween floating gates. For example, a high coupling ratio betweenfloating gates of adjacent cells would require that the verificationoperation be performed to a lower V_(t).

FIG. 2 illustrates a flowchart of one embodiment of a method of thepresent invention for programming a memory array in order to reduce oreliminate adjacent floating gate data pattern sensitivity caused bycapacitive coupling of adjacent floating gates. The method begins withthe cells to be programmed being in an erased state 201. This mayrequire that at least a subset (e.g., a block) of the memory array beerased by an erase operation.

If a cell is to be programmed, the method starts at the bottom row ofthe array 203. This is the row closest to the SG(S) line 118 of FIG. 1.Alternate embodiments may start at the row at the top of the arrayclosest to the SG(D) line 114.

A soft programming pulse is generated to bias the wordline of the cell205 to be programmed in order to raise its control gate voltage from the−1V erased voltage to 0.8V. This voltage is 0.2V less than a typicalcontrol gate voltage for a programmed cell. The soft programming may beaccomplished by a shorter than normal programming pulse and/orprogramming pulse having a lower voltage.

A verification operation is then performed on the programmed cell 207 toverify that it was programmed to the lower V_(t) voltage. If the lowerV_(t) voltage has not been reached, the cell is programmed 205 until itscontrol gate is raised to the lower V_(t).

The verification operation of the present invention uses a highervoltage on the selected wordline than is normally used in a prior artverification. In one embodiment, the selected wordline is biased with1.0V during verification and the unselected wordlines are biased at4.5V. The higher verification voltage is used since it may not bedesirable to use a verification voltage that is substantially similar toa read voltage. Alternate embodiments may use other voltage levels forboth the selected and unselected wordlines.

Once the initial cell has been verified 207, it is determined whetherthe adjacent cell in the series string is to be programmed 209. If theadjacent cell is not to be programmed, the previously programmed cellshould be re-verified 213 at a “normal” V_(t) level. In one embodiment,this is a threshold voltage of 1.0V. Since this cell was programmed onlyto 0.8V or some other lower V_(t), the cell is probably going to requirean additional programming pulse or pulses to bring its voltage up to thenormal V_(t).

If the verification of the previously programmed cell was not successful217, another programming pulse is generated 219 for the cell. Theprogramming and verification steps 219 and 217 are repeated until theverification operation is successful at which point the next cell to beprogrammed is checked 221.

If the cell that is adjacent in the series string to the previouslyprogrammed cell is to be programmed 209, a soft programming pulse isgenerated 211 for this adjacent cell. A verification operation isperformed on the adjacent cell 215. The programming/verificationoperations 211 and 215 are repeated until the adjacent cell isprogrammed and successfully verified to the lower V_(t).

The method then returns to the previously programmed cell (i.e., thelower wordline) and performs another verification operation 213. Thisverification is performed to the “normal” V_(t) 213 since the couplingbetween the floating gate on the adjacent programmed cell pulls up thefloating gate on the previously programmed cell.

The above-described method is repeated for each cell in the seriesstring of memory cells from WL31 up to WL0 of FIG. 1. On WL0, sincethere is no impact from a floating gate of a cell above it, this cell isverified to the normal V_(t).

In an alternate embodiment, additional floating gate-to-floating gatecoupling can be removed by verifying from −1.0 to 0.78V. This may benecessary since, when the lower wordline cell is verified, the upperwordline cell has moved from −1.0 to 0.8V and may move another 200 mVlater. This may be corrected by a method that is substantially similarto the embodiment illustrated in FIG. 2 except that each row, except thelast row to be programmed, is verified to 0.78V. Additionally, thisembodiment re-verifies the lower two adjacent rows instead of the lowersingle adjacent row.

In another alternate embodiment, the adjacent cells may be considered tobe the cells in the adjacent bitline instead of the adjacent cells inthe same bitline. In such an embodiment, the method of FIG. 2 would beused except cells on alternate bitlines would be programmed/verified. Inother words, bit 0 on BL1 would be programmed/verified to the lowerV_(t), then bit 0 on BL2 would be programmed/verified. The method thenwould reverify bit 0 on BL1. This alternating would continue up eachbitline.

FIG. 3 illustrates a flowchart of an alternate embodiment for a methodfor programming memory cells to reduce or eliminate floatinggate-to-floating gate data pattern sensitivity in a memory device. Themethod begins with the cells to be programmed being in an erased state301. This may require that at least a subset (e.g., a block) of thememory array be erased by an erase operation.

The bottom row of cells (e.g., row 0) is then programmed 303, with asoft program pulse, to a lower than normal V_(t) (e.g., 0.2V less thannormal V_(t)). The row is then verified to the lower V_(t) 305. If thereduced V_(t) has not been reached, the soft programming continues untileach column in the row is verified.

The next row up (e.g., row 1) from the bottom is then programmed in thesame manner 307. This row is then verified to the lower V_(t) 309. Theprogramming of this row is performed until the lower threshold voltageis achieved.

Each column of the first row that was programmed is then re-verified 311to a normal threshold voltage for that memory technology (e.g., 1.0V).If the verification of the first row is successfully verified 313, theremainder of the rows of the block are programmed in the samealternating fashion 315. If the verification fails 313, a softprogramming pulse is generated 317 until the higher V_(t) for the row isreached.

The above-described embodiments of the present invention allow the useof larger variances in the level of programming pulses applied and,hence, speed up the programming operation. Since NAND flash memorydevices are programmed with pulses that each increase in predeterminedvoltage steps from a lower voltage (e.g., 14V) to a higher voltage(e.g., 20V), to get within 100 mV of V_(t) distribution, variation fromvoltage-to-voltage on a wordline would need to be 100 mV. This resultsin a relatively large number of steps from the lower voltage to thehigher voltage, thus impacting the programming time.

By reducing the coupling effect of adjacent cells with the embodimentsof the present invention, the V_(t) guard band between states does nothave to be as large and a larger V_(t) distribution window can be usedwith resulting larger step voltages. For example, elimination of thecoupling effect might enable a 400 mV window to be used with 200 mVincrements, thus decreasing the programming time.

FIG. 4 illustrates a functional block diagram of a memory device 400that can incorporate the flash memory cells of the present invention.The memory device 400 is coupled to a processor 410. The processor 410may be a microprocessor or some other type of controlling circuitry. Thememory device 400 and the processor 410 form part of an electronicsystem 420. The memory device 400 has been simplified to focus onfeatures of the memory that are helpful in understanding the presentinvention.

The memory device includes an array of flash memory cells 430. Thememory array 430 is arranged in banks of rows and columns. The controlgates of each row of memory cells is coupled with a wordline while thedrain and source connections of the memory cells are coupled tobitlines. As is well known in the art, the connection of the cells tothe bitlines depends on whether the array is a NAND architecture or aNOR architecture. The memory cells of the present invention can bearranged in either a NAND or NOR architecture as well as otherarchitectures.

An address buffer circuit 440 is provided to latch address signalsprovided on address input connections A0-Ax 442. Address signals arereceived and decoded by a row decoder 444 and a column decoder 446 toaccess the memory array 430. It will be appreciated by those skilled inthe art, with the benefit of the present description, that the number ofaddress input connections depends on the density and architecture of thememory array 430. That is, the number of addresses increases with bothincreased memory cell counts and increased bank and block counts.

The memory device 400 reads data in the memory array 430 by sensingvoltage or current changes in the memory array columns using senseamplifier/buffer circuitry 450. The sense amplifier/buffer circuitry, inone embodiment, is coupled to read and latch a row of data from thememory array 430. Data input and output buffer circuitry 460 is includedfor bi-directional data communication over a plurality of dataconnections 462 with the controller 410. Write circuitry 455 is providedto write data to the memory array.

Control circuitry 470 decodes signals provided on control connections472 from the processor 410. These signals are used to control theoperations on the memory array 430, including data read, data write, anderase operations. The control circuitry 470 may be a state machine, asequencer, or some other type of controller. In one embodiment, thecontrol circuitry 470 is a state machine that performs the embodimentsof the method for programming a memory array in order to reduce oreliminate adjacent floating gate data pattern sensitivity.

The flash memory device illustrated in FIG. 4 has been simplified tofacilitate a basic understanding of the features of the memory and isfor purposes of illustration only. A more detailed understanding ofinternal circuitry and functions of flash memories are known to thoseskilled in the art. Alternate embodiments may include the flash memorycell of the present invention in other types of electronic systems.

CONCLUSION

In summary, embodiments of the method of the present invention providefor programming memory cells of a memory array such that floatinggate-to-adjacent floating gate data pattern sensitivity is reduced oreliminated. This is accomplished by performing soft programmingoperations on the memory cells while taking into account the couplingeffect on adjacent cells.

Although specific embodiments have been illustrated and describedherein, it will be appreciated by those of ordinary skill in the artthat any arrangement that is calculated to achieve the same purpose maybe substituted for the specific embodiments shown. Many adaptations ofthe invention will be apparent to those of ordinary skill in the art.Accordingly, this application is intended to cover any adaptations orvariations of the invention. It is manifestly intended that thisinvention be limited only by the following claims and equivalentsthereof.

1. A method for programming an array of memory cells arranged in rowsand columns in a system having a capacitive coupling effect betweenadjacent memory cells, each memory cell having a first threshold voltagedistribution window and a first programming step voltage that do nottake into account the capacitive coupling effect, the method comprising:generating programming pulses to a first memory cell such that acoupling effect from adjacent memory cells is taken into account, theprogramming pulses comprising a series of programming voltages, eachprogramming voltage in the series increased by a second programming stepvoltage from a previous programming voltage such that the first memorycell is in a second threshold voltage distribution window determined inresponse to the capacitive coupling effect, the second programming stepvoltage greater than the first programming step voltage and the secondthreshold voltage distribution window greater than the first thresholdvoltage distribution window.
 2. The method of claim 1 wherein the firstprogramming step voltage is 100 mV and the second programming stepvoltage is greater than 100 mV.
 3. The method of claim 1 wherein thearray of memory cells is arranged in a NAND architecture.
 4. The methodof claim 1 wherein the adjacent memory cells are in the same column asthe first memory cell.
 5. The method of claim 1 wherein the adjacentmemory cells are in the same row as the first memory cell.
 6. The methodof claim 1 wherein a soft program operation comprises biasing a controlgate of the first memory cell with at least one programming pulse suchthat a positive programmed voltage is produced on a floating gate of thefirst memory cell.
 7. The method of claim 1 wherein the effect is acoupling between floating gates of adjacent memory cells.
 8. A methodfor programming an array of memory cells arranged in rows and columns ina system having a capacitive coupling effect between adjacent memorycells, each memory cell having a first threshold voltage distributionwindow and a first programming step voltage that do not take intoaccount the capacitive coupling effect, the method comprising:generating a second programming step voltage that takes into account thecapacitive coupling effect, the second programming step voltage greaterthan the first programming step voltage; and generating a secondthreshold voltage distribution window that takes into account thecapacitive coupling effect, the second threshold voltage distributionwindow wider than the first threshold voltage distribution window. 9.The method of claim 8 and further including verifying programmed memorycells to an increased threshold voltage that is within the secondthreshold voltage distribution window.
 10. The method of claim 8 whereinthe adjacent memory cells are coupled to the same bitline.
 11. Themethod of claim 8 wherein the adjacent memory cells are coupled to thesame wordline.
 12. The method of claim 8 wherein the first and secondthreshold voltage distribution windows are positive voltages.
 13. Themethod of claim 8 wherein the array of memory cells is a NAND flashmemory array.
 14. A method for programming an array of memory cellsarranged in rows and columns, the method comprising: generatingprogramming pulses to a first memory cell to program the first memorycell to a first threshold voltage such that a coupling effect fromadjacent memory cells is taken into account; verifying that the firstmemory cell is programmed to the first threshold voltage; generatingprogramming pulses to a second memory cell adjacent the first memorycell; and after generating the programming pulses to the second memorycell, performing a verification operation to determine whether the firstmemory cell is programmed to a second threshold voltage greater than thefirst threshold voltage.
 15. The method of claim 14 wherein the couplingeffect is a capacitive coupling.
 16. The method of claim 14 wherein theadjacent memory cells are adjacent on the same bitline.
 17. The methodof claim 14 wherein the adjacent memory cells are adjacent on the samewordline.
 18. The method of claim 14 wherein the array of memory cellsare flash memory cells arranged in a NAND architecture.
 19. The methodof claim 14 wherein a first programming voltage is 100 mV and asubsequent programming voltage is greater than 100 mV.
 20. The method ofclaim 14 wherein a capacitive coupling effect causes an increase inprogramming voltage for subsequently programmed memory cells.